package com.easymall.dao;

import com.easymall.domain.Category;

import java.sql.SQLException;
import java.util.List;

public interface CategoryDao {

    /**
     * 初始化生命周期函数
     */
    void init();

    /**
     * 提供分类id查询对应Category
     * @param id 分类id
     * @return Category对象
     * @throws SQLException 数据库操作失败
     */
    Category getCategoryById(int id) throws SQLException;

    /**
     * 提供分类名称查询对应的Category
     * @param name 分类名称
     * @return Category对象
     * @throws SQLException 数据库操作失败
     */
    Category getCategoryByName(String name) throws SQLException;

    /**
     * 查询出所有的分类
     * @return  包含所有分类对象的Category数组
     * @throws SQLException 数据库操作失败
     */
    List<Category> listCategoryAll() throws SQLException;

    /**
     * 添加分类
     * @param category 分类对象
     * @return true-成功，false-删除失败
     * @throws SQLException 数据操作失败
     */
    boolean saveCategory(Category category) throws SQLException;

    /**
     * 提供分类id，删除对应的分类
     * @param id 要删除分类的id
     * @return true-成功，false-删除失败
     * @throws SQLException 数据操作失败
     */
    boolean deleteCategoryById(int id) throws SQLException;
}
